# 正则表达式
# 正则表达式网站：https://regex101.com
# 元字符：(用来匹配需要提取的文本)
#   .：
#   *：用于子表达式
#   +：用于子表达式
#   ?：用于子表达式    .*? 一般用于非贪婪模式  
#   {}:用于前面的字符
#   \ :转义
#   \d \D \s \S \w \W
#   [ ] 要指定匹配的几个字符之一
#   ^ :在[]中，和单独的意思
#   $ : 
#   ():分组   ？P<分组名>




# p = re.compile(表达式，re.MULTILINE) 返回一个正则表达式对象 p.findall()  ，re.MULTILINE 表示多行模式，每一行都是新的一行
# re.findall(表达式， 文本) 值用于查找一次
# re.split(表达式，要切割的文本)
# re.sub(要替换的内容，新内容/一个处理函数，文本)

# import re

# content = '''张三，手机号码15945678901
# 李四，手机号码13945677701
# 王二，手机号码13845666901'''

# import re
# p = re.compile(r'^(.+)，.+(\d{11})', re.MULTILINE)
# for one in  p.findall(content):
#     print(one)

import os,re,glob
from multiprocessing import Process
from urllib.parse import quote

content = '''张三，手机号码15945678901
李四，手机号码13945677701
王二，手机号码13845666901'''

import re
p = re.compile(r'^(.+)，.+(\d{11})', re.MULTILINE)
for one in  p.findall(content):
    print(one[0])
    print(one[1])

content2 = '阿斯匹林 * 333 硫糖铝片 * 34 舒利迭 * 22 派通欣片 * 2'

regular = r'(.*?)\s\*\s([0-9]*)'
reg = re.compile(regular)
for i in reg.findall(content2):
    print(i)
    print(f'药品的名称是{i[0]},数量是{i[1]}')

#练习


def get_something(url):
    os.system(rf'C:\Users\CC\Downloads\wget {url}')

if __name__ == '__main__':
    cmd1 = r'C:\Users\CC\Downloads\wget -O index.html http://www.listeningexpress.com/studioclassroom/ad'

    work_path = os.getcwd()
    file_loc = os.path.join(work_path,'index.html')
    if os.path.exists(file_loc):
        os.remove(file_loc)
    
    list1 = glob.glob(f'{work_path}/*.mp3')
    for i in list1:
        os.remove(i)
    

    p = os.system(cmd1)

    with open(file_loc,'r',encoding='gb2312') as f:
        content = f.read()
    # print(content)
    #从content中获取所有的mp3网址
    # re_cmd = r'javascript.*?\.mp3'
    re_cmd = r"javascript:p\('(.*?\.mp3)'\)"
    p = re.compile(re_cmd)

    p_list = []
    for one in p.findall(content):
        print(one)
        new_adress = quote(one)
        print(new_adress)

        new_mp3_adress = f'http://www.listeningexpress.com/studioclassroom/ad/{new_adress}'

        p = Process(target=get_something,args=(new_mp3_adress,))
        p.start()
        p_list.append(p)

    for p in p_list:
        p.join()

    

